package test3.bit;

/**
 * 461. 汉明距离
 * 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
 * <p>
 * 给出两个整数 x 和 y，计算它们之间的汉明距离。
 * 注意：
 * 0 ≤ x, y < 231.
 */
public class HammingDistance {
    public static void main(String[] args) {
        int res = new HammingDistance().hammingDistance(1, 4);
        System.out.println(res);
    }

    public int hammingDistance(int x, int y) {

        int count = 0;
        while (x != 0 || y != 0) {
            int x1 = x & 1;
            int y1 = y & 1;
            count += x1 ^ y1;
            x >>= 1;
            y >>= 1;
        }
        return count;
    }
}
